package com.core.family.admin.domain.po;

import com.core.family.admin.domain.po.PlatPayment;
import lombok.Data;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;

/**
 * @author honglei
 * @version 1.0
 * @time: 2023-7-13 15:03:14
 * @Description PO对象 财务账单
 */
@Accessors(chain = true)
@Data
@TableName(value = "plat_finance_statement")
public class PlatFinanceStatement implements Serializable {


        /*
        *  审核状态：待审核，已审核
        */

        @TableField(value = "audit_status")
        private String auditStatus;

        /*
        *  余额
        */

        @TableField(value = "balance")
        private Long balance;

        /*
        *  收入，支付、退款、充值、提现
        */

        @NotNull(message = "业务类型 不能为空")
        @TableField(value = "biz_type")
        private String bizType;

        /*
        *
        */
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
        @TableField(value = "create_time")
        private Date createTime;

        /*
        *
        */
        @TableField(value = "id")
        private Integer id;


        @TableField(value = "join_id")
        private Integer joinId;



        @TableField(value = "order_dis")
        private String orderDis;

        /*
        *  关联订单id
        */
        @TableField(value = "order_id")
        private Integer orderId;

        /*
        *
        */
        @TableField(value = "org_id")
        private Integer orgId;

        /*
        *  付款方名称
        */

        @TableField(value = "pay_name")
        private String payName;

        /*
        *  支付流水-关联pay_statement
        */

        @TableField(value = "pay_sn")
        private String paySn;

        @TableField(value = "out_trade_no")
        private String outTradeno;



        @TableField(value = "join_sn")
        private String joinSN;



        /*
        *  支付时间
        */
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
        @TableField(value = "pay_time")
        private Date payTime;

        /*
        *  金额
        */
        @NotNull(message = "金额 不能为空")
        @TableField(value = "price")
        private Long price;

        /*
        *  待支付，支付中，已完成
        */

        @TableField(value = "status")
        private String status;

        /*
        *  收入、支出
        */
        @NotNull(message = "收入、支出 不能为空")
        @TableField(value = "type")
        private String type;

        /*
        *
        */
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
        @TableField(value = "update_time")
        private Date updateTime;

        /*
        *  用户id
        */
        @NotNull(message = "用户id 不能为空")
        @TableField(value = "user_id")
        private Integer userId;

        /*
        *  用户名
        */
        @NotNull(message = "用户名 不能为空")
        @TableField(value = "user_name")
        private String userName;


        @TableField(exist = false)
        private PlatPayment platPayment;

        private String reamrk;

}
